﻿// /////////////////////////////////// 
//  
//  
//      WiseLink CCF2.0 
//     (c)Copyright 2001-2010 WiseLink Xiaojun (David) Chen 
//        Authored and Owned Xiaojun (David) Chen 
//        All Right Reserved
//  
// /////////////////////////////////// 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace ZIC20Contract.DataType
{
    /// <summary>
    /// ZIS消息类型
    /// </summary>
    public enum ZISMsgType
    {
        /// <summary>
        /// 清码
        /// </summary>
        CodeClear = 14, 
        
        /// <summary>
        /// 发送导航屏消息
        /// </summary>
        GPRS = 1        
    }

    /// <summary>
    /// 清码指令类型
    /// </summary>
    public enum ClearCodeType
    {
        /// <summary>
        /// 发动机
        /// </summary>
        Engine =0x101,          
        
        /// <summary>
        /// 自动变速箱
        /// </summary>
        Transmission = 0x102,   
        
        /// <summary>
        /// abs制动
        /// </summary>
        ABSSystem = 0x103,      
        
        /// <summary>
        /// 安全气囊
        /// </summary>
        AirBag = 0x115         
    }

    /// <summary>
    /// 向导航屏下发的消息类型
    /// </summary>
    public enum GPRSMsgType
    {
        /// <summary>
        /// 故障信息——短信，屏——PIP  上面TITLE显示“故障提示”
        /// </summary>
        Fault = 1,              //1、	故障信息——短信，屏——PIP  上面TITLE显示“故障提示”
        
        /// <summary>
        /// 保养信息——短信，屏——PIP   上面TITLE显示“保养提示”
        /// </summary>
        Maintenance = 2,        //2、	保养信息——短信，屏——PIP   上面TITLE显示“保养提示”
        
        /// <summary>
        /// 维修站提示、广告信息——屏——下面滚动显示  
        /// </summary>
        DealerReminder = 3,     //3、	维修站提示、广告信息——屏——下面滚动显示  

        /// <summary>
        /// 智信通提示、广告信息——屏——下面滚动显示
        /// </summary>
        WiseLinkReminder = 4,   //4、	智信通提示、广告信息——屏——下面滚动显示
        
        /// <summary>
        /// 车况月报信息——短信，屏——PIP   上面TITLE显示“车况月报信息提示”
        /// </summary>
        MonthlyReport = 5,      //5、	车况月报信息——短信，屏——PIP   上面TITLE显示“车况月报信息提示”
        
        /// <summary>
        /// 位置查询——短信，屏——PIP       上面TITLE显示“温馨提示”
        /// </summary>
        Location = 6,           //6、	位置查询——短信，屏——PIP       上面TITLE显示“温馨提示”
        
        /// <summary>
        /// 开机通知——短信，屏——PIP       上面TITLE显示“欢迎使用”
        /// </summary>
        Startup = 7,            //7、	开机通知——短信，屏——PIP       上面TITLE显示“欢迎使用”
        
        /// <summary>
        /// 索赔——短信，屏——PIP           上面TITLE显示“温馨提示”
        /// </summary>
        Refund = 8,             //8、	索赔——短信，屏——PIP           上面TITLE显示“温馨提示”
        
        /// <summary>
        /// POI导航——短信，屏——PIP           上面TITLE显示“温馨提示”
        /// </summary>
        POIInfo = 9             //9、	POI导航——短信，屏——PIP           上面TITLE显示“温馨提示”
    }

    /// <summary>
    /// 设置车系类型
    /// </summary>
    public enum VehicleBrandCode
    {
        /// <summary>
        /// 现代
        /// </summary>
        HYUNDAI = 0x4B03,//
        
        /// <summary>
        /// 福特
        /// </summary>
        FORD = 0x4603,//
        
        /// <summary>
        /// 日产
        /// </summary>
        NISSAN = 0x4E03,//
        
        /// <summary>
        /// 丰田
        /// </summary>
        TOYATA = 0x5403,//
        
        /// <summary>
        /// 本田
        /// </summary>
        HONDA = 0x4803,//
        
        /// <summary>
        /// 通用
        /// </summary>
        GM = 0x4703,//
        
        /// <summary>
        /// 一汽大众
        /// </summary>
        FAW = 0x5603,//
        
        /// <summary>
        /// 宝马
        /// </summary>
        BMW=0x4203,

        /// <summary>
        /// 车系查询
        /// </summary>
        QUERY = 0x04, 
        
        /// <summary>
        /// OBD 全车系
        /// </summary>
        OBD = 0x10001 
    }

    
    /// <summary>
    /// 下发POI导航信息的结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
    public struct POINavigation
    {
        //  public int iRetStu;//1 返回值状态 初始＝0
        /// <summary>
        /// 是否加密 缺省＝false
        /// </summary>
        public bool ils_Encrypt;//1 是否加密 ＝false
        
        /// <summary>
        /// 经度
        /// </summary>
        public float fLng;
        /// <summary>
        /// 维度
        /// </summary>
        public float fLat;
        
        /// <summary>
        /// POI 名称 20 byte
        /// </summary>
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
        public string wcName;//POI 名称 20 byte

        /// <summary>
        /// 格式如: 201011101040(2010年11月10日11点40)
        /// </summary>
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 12)]
        public string wcCreate_Time;//POI 发送时间，字符串格式如: 201011101040(2010年11月10日11点40)

        /// <summary>
        /// IDC号
        /// </summary>
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 11)]
        public string wcCall_Phone;//1 电话

    }

    /// <summary>
    /// 位置信息返回借口，用于轨迹回放和获取位置信息。
    /// </summary>
    
    public class GPSPositionInfo
    {
        
        /// <summary>
        /// 获取位置信息时时间
        /// </summary>
        public DateTime? GpsTime { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public decimal? Longitude { get; set; }
        /// <summary>
        /// 维度
        /// </summary>
        public decimal? Latitude { get; set; }

        
    }


    /// <summary>
    /// 位置信息返回借口，用于轨迹回放和获取位置信息。
    /// </summary>

    public class FaultInfo
    {

        /// <summary>
        /// 获取位置信息时时间
        /// </summary>
        public string Code { get; set; }


        /// <summary>
        /// 获取位置信息时时间
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// 获取位置信息时时间
        /// </summary>
        public int Version { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public string ExtentInfo { get; set; }

    }

}
